<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>设置一个cURL传输选项</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.curl-setopt-array.html">curl_setopt_array</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.curl-share-close.html">curl_share_close</a></div>
 <div class="up"><a href="ref.curl.html">cURL 函数</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="function.curl-setopt" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">curl_setopt</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.2, PHP 5)</p><p class="refpurpose"><span class="refname">curl_setopt</span> &mdash; <span class="dc-title">设置一个cURL传输选项</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.curl-setopt-description">
  <h3 class="title">说明</h3>
  <div class="methodsynopsis dc-description">
   <span class="type">bool</span> <span class="methodname"><strong>curl_setopt</strong></span>
    ( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$ch</code></span>
   , <span class="methodparam"><span class="type">int</span> <code class="parameter">$option</code></span>
   , <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$value</code></span>
   )</div>

  <p class="para rdfs-comment">
   为给定的cURL会话句柄设置一个选项。
  </p>
 </div>

 
 <div class="refsect1 parameters" id="refsect1-function.curl-setopt-parameters">
  <h3 class="title">参数</h3>
  <p class="para">
   <dl>

    <dt>
<em><code class="parameter">ch</code></em>
</dt>
<dd>
<p class="para">由 <span class="function"><a href="function.curl-init.html" class="function">curl_init()</a></span> 返回的 cURL 句柄。</p></dd>

    
     <dt>
<em><code class="parameter">option</code></em></dt>

     <dd>

      <p class="para">
       需要设置的<em>CURLOPT_XXX</em>选项。
      </p>
     </dd>

    
    
     <dt>
<em><code class="parameter">value</code></em></dt>

     <dd>

      <p class="para">
       将设置在<em><code class="parameter">option</code></em>选项上的值。
      </p>
      <p class="para">
       对于下面的这些<em><code class="parameter">option</code></em>的可选参数，<em><code class="parameter">value</code></em>应该被设置一个<span class="type"><a href="language.types.boolean.html" class="type bool">bool</a></span>类型的值：
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>选项</th>
           <th>可选<em><code class="parameter">value</code></em>值</th>
           <th>备注</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_AUTOREFERER</code></strong></td>
           <td style="vertical-align: top;">
            当根据<em>Location:</em>重定向时，自动设置header中的<em>Referer:</em>信息。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_BINARYTRANSFER</code></strong></td>
           <td style="vertical-align: top;">
            在启用<strong><code>CURLOPT_RETURNTRANSFER</code></strong>的时候，返回原生的（Raw）输出。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_COOKIESESSION</code></strong></td>
           <td style="vertical-align: top;">
            启用时curl会仅仅传递一个session cookie，忽略其他的cookie，默认状况下cURL会将所有的cookie返回给服务端。session cookie是指那些用来判断服务器端的session是否有效而存在的cookie。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_CRLF</code></strong></td>
           <td style="vertical-align: top;">
            启用时将Unix的换行符转换成回车换行符。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_DNS_USE_GLOBAL_CACHE</code></strong></td>
           <td style="vertical-align: top;">
            启用时会启用一个全局的DNS缓存，此项为线程安全的，并且默认启用。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FAILONERROR</code></strong></td>
           <td style="vertical-align: top;">
            显示HTTP状态码，默认行为是忽略编号小于等于400的HTTP信息。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FILETIME</code></strong></td>
           <td style="vertical-align: top;">
            启用时会尝试修改远程文档中的信息。结果信息会通过<span class="function"><a href="function.curl-getinfo.html" class="function">curl_getinfo()</a></span>函数的<em><code class="parameter">CURLINFO_FILETIME</code></em>选项返回。
            <span class="function"><a href="function.curl-getinfo.html" class="function">curl_getinfo()</a></span>.
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FOLLOWLOCATION</code></strong></td>
           <td style="vertical-align: top;">
            启用时会将服务器服务器返回的<em>&quot;Location: &quot;</em>放在header中递归的返回给服务器，使用<strong><code>CURLOPT_MAXREDIRS</code></strong>可以限定递归返回的数量。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FORBID_REUSE</code></strong></td>
           <td style="vertical-align: top;">
            在完成交互以后强迫断开连接，不能重用。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FRESH_CONNECT</code></strong></td>
           <td style="vertical-align: top;">
            强制获取一个新的连接，替代缓存中的连接。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FTP_USE_EPRT</code></strong></td>
           <td style="vertical-align: top;">
            启用时当FTP下载时，使用EPRT (或 LPRT)命令。设置为<strong><code>FALSE</code></strong>时禁用EPRT和LPRT，使用PORT命令
            only.
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FTP_USE_EPSV</code></strong></td>
           <td style="vertical-align: top;">
            启用时，在FTP传输过程中回复到PASV模式前首先尝试EPSV命令。设置为<strong><code>FALSE</code></strong>时禁用EPSV命令。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FTPAPPEND</code></strong></td>
           <td style="vertical-align: top;">
            启用时追加写入文件而不是覆盖它。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FTPASCII</code></strong></td>
           <td style="vertical-align: top;">
            <strong><code>CURLOPT_TRANSFERTEXT</code></strong>的别名。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FTPLISTONLY</code></strong></td>
           <td style="vertical-align: top;">
            启用时只列出FTP目录的名字。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HEADER</code></strong></td>
           <td style="vertical-align: top;">
            启用时会将头文件的信息作为数据流输出。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td><strong><code>CURLINFO_HEADER_OUT</code></strong></td>
           <td style="vertical-align: top;">
            启用时追踪句柄的请求字符串。
           </td>
           <td style="vertical-align: top;">
            从 PHP 5.1.3 开始可用。<strong><code>CURLINFO_</code></strong>前缀是故意的(intentional)。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HTTPGET</code></strong></td>
           <td style="vertical-align: top;">
            启用时会设置HTTP的method为GET，因为GET是默认是，所以只在被修改的情况下使用。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HTTPPROXYTUNNEL</code></strong></td>
           <td style="vertical-align: top;">
            启用时会通过HTTP代理来传输。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_MUTE</code></strong></td>
           <td style="vertical-align: top;">
            启用时将cURL函数中所有修改过的参数恢复默认值。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_NETRC</code></strong></td>
           <td style="vertical-align: top;">
            在连接建立以后，访问<var class="filename">~/.netrc</var>文件获取用户名和密码信息连接远程站点。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_NOBODY</code></strong></td>
           <td style="vertical-align: top;">
           启用时将不对HTML中的BODY部分进行输出。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_NOPROGRESS</code></strong></td>
           <td style="vertical-align: top;"><p class="para">
            启用时关闭curl传输的进度条，此项的默认设置为启用。
            <blockquote class="note"><p><strong class="note">Note</strong>: 
             <p class="para">
              PHP自动地设置这个选项为<strong><code>TRUE</code></strong>，这个选项仅仅应当在以调试为目的时被改变。
             </p>
            </p></blockquote>
            </p></td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_NOSIGNAL</code></strong></td>
           <td style="vertical-align: top;">
            启用时忽略所有的curl传递给php进行的信号。在SAPI多线程传输时此项被默认启用。
           </td>
           <td style="vertical-align: top;">
            cURL 7.10时被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_POST</code></strong></td>
           <td style="vertical-align: top;">
            启用时会发送一个常规的POST请求，类型为：<em>application/x-www-form-urlencoded</em>，就像表单提交的一样。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PUT</code></strong></td>
           <td style="vertical-align: top;">
            启用时允许HTTP发送文件，必须同时设置<strong><code>CURLOPT_INFILE</code></strong>和<strong><code>CURLOPT_INFILESIZE</code></strong>。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_RETURNTRANSFER</code></strong></td>
           <td style="vertical-align: top;">
            将<span class="function"><a href="function.curl-exec.html" class="function">curl_exec()</a></span>获取的信息以文件流的形式返回，而不是直接输出。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSL_VERIFYPEER</code></strong></td>
           <td style="vertical-align: top;">
            禁用后cURL将终止从服务端进行验证。使用<strong><code>CURLOPT_CAINFO</code></strong>选项设置证书使用<strong><code>CURLOPT_CAPATH</code></strong>选项设置证书目录
            如果<strong><code>CURLOPT_SSL_VERIFYPEER</code></strong>(默认值为2)被启用，<strong><code>CURLOPT_SSL_VERIFYHOST</code></strong>需要被设置成<strong><code>TRUE</code></strong>否则设置为<strong><code>FALSE</code></strong>。
           </td>
           <td style="vertical-align: top;">
            自cURL 7.10开始默认为<strong><code>TRUE</code></strong>。从cURL 7.10开始默认绑定安装。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_TRANSFERTEXT</code></strong></td>
           <td style="vertical-align: top;">
            启用后对FTP传输使用ASCII模式。对于LDAP，它检索纯文本信息而非HTML。在Windows系统上，系统不会把<em>STDOUT</em>设置成binary模式。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_UNRESTRICTED_AUTH</code></strong></td>
           <td style="vertical-align: top;">
           在使用<strong><code>CURLOPT_FOLLOWLOCATION</code></strong>产生的header中的多个locations中持续追加用户名和密码信息，即使域名已发生改变。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_UPLOAD</code></strong></td>
           <td style="vertical-align: top;">
            启用后允许文件上传。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_VERBOSE</code></strong></td>
           <td style="vertical-align: top;">
            启用时会汇报所有的信息，存放在<em>STDERR</em>或指定的<strong><code>CURLOPT_STDERR</code></strong>中。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
      <p class="para">
       对于下面的这些<em><code class="parameter">option</code></em>的可选参数，<em><code class="parameter">value</code></em>应该被设置一个<span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>类型的值：
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>选项</th>
           <th>可选<em><code class="parameter">value</code></em>值</th>
           <th>备注</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_BUFFERSIZE</code></strong></td>
           <td style="vertical-align: top;">
            每次获取的数据中读入缓存的大小，但是不保证这个值每次都会被填满。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.10中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_CLOSEPOLICY</code></strong></td>
           <td style="vertical-align: top;">
            不是<em><code class="parameter">CURLCLOSEPOLICY_LEAST_RECENTLY_USED</code></em>就是<em><code class="parameter">CURLCLOSEPOLICY_OLDEST</code></em>，还存在另外三个<em>CURLCLOSEPOLICY_</em>，但是cURL暂时还不支持。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td><strong><code>CURLOPT_CONNECTTIMEOUT</code></strong></td>
           <td style="vertical-align: top;">
            在发起连接前等待的时间，如果设置为0，则无限等待。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_CONNECTTIMEOUT_MS</code></strong></td>
           <td style="vertical-align: top;">
            尝试连接等待的时间，以毫秒为单位。如果设置为0，则无限等待。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.16.2中被加入。从PHP 5.2.3开始可用。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_DNS_CACHE_TIMEOUT</code></strong></td>
           <td style="vertical-align: top;">
            设置在内存中保存DNS信息的时间，默认为120秒。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FTPSSLAUTH</code></strong></td>
           <td style="vertical-align: top;">
            FTP验证方式：<em>CURLFTPAUTH_SSL</em> (首先尝试SSL)，<em>CURLFTPAUTH_TLS</em> (首先尝试TLS)或<em>CURLFTPAUTH_DEFAULT</em> (让cURL自动决定)。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.12.2中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HTTP_VERSION</code></strong></td>
           <td style="vertical-align: top;">
            <em><code class="parameter">CURL_HTTP_VERSION_NONE</code></em> (默认值，让cURL自己判断使用哪个版本)，<em><code class="parameter">CURL_HTTP_VERSION_1_0</code></em> (强制使用 HTTP/1.0)或<em><code class="parameter">CURL_HTTP_VERSION_1_1</code></em> (强制使用 HTTP/1.1)。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HTTPAUTH</code></strong></td>
           <td style="vertical-align: top;">
            <p class="para">
             使用的HTTP验证方法，可选的值有：<em><code class="parameter">CURLAUTH_BASIC</code></em>、<em><code class="parameter">CURLAUTH_DIGEST</code></em>、<em><code class="parameter">CURLAUTH_GSSNEGOTIATE</code></em>、<em><code class="parameter">CURLAUTH_NTLM</code></em>、<em><code class="parameter">CURLAUTH_ANY</code></em>和<em><code class="parameter">CURLAUTH_ANYSAFE</code></em>。
            </p>
            <p class="para">
             可以使用<em>|</em>位域(或)操作符分隔多个值，cURL让服务器选择一个支持最好的值。
            </p>
            <p class="para">
             <em><code class="parameter">CURLAUTH_ANY</code></em>等价于<em>CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM</em>.
            </p>
            <p class="para">
             <em><code class="parameter">CURLAUTH_ANYSAFE</code></em>等价于<em>CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM</em>.
            </p>
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_INFILESIZE</code></strong></td>
           <td style="vertical-align: top;">
            设定上传文件的大小限制，字节(byte)为单位。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_LOW_SPEED_LIMIT</code></strong></td>
           <td style="vertical-align: top;">
            当传输速度小于<strong><code>CURLOPT_LOW_SPEED_LIMIT</code></strong>时(bytes/sec)，PHP会根据<strong><code>CURLOPT_LOW_SPEED_TIME</code></strong>来判断是否因太慢而取消传输。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_LOW_SPEED_TIME</code></strong></td>
           <td style="vertical-align: top;">
            当传输速度小于<strong><code>CURLOPT_LOW_SPEED_LIMIT</code></strong>时(bytes/sec)，PHP会根据<strong><code>CURLOPT_LOW_SPEED_TIME</code></strong>来判断是否因太慢而取消传输。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_MAXCONNECTS</code></strong></td>
           <td style="vertical-align: top;">
            允许的最大连接数量，超过是会通过<strong><code>CURLOPT_CLOSEPOLICY</code></strong>决定应该停止哪些连接。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_MAXREDIRS</code></strong></td>
           <td style="vertical-align: top;">
            指定最多的HTTP重定向的数量，这个选项是和<strong><code>CURLOPT_FOLLOWLOCATION</code></strong>一起使用的。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PORT</code></strong></td>
           <td style="vertical-align: top;">
            用来指定连接端口。（可选项）
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PROTOCOLS</code></strong></td>
           <td style="vertical-align: top;">
            <p class="para">
             <strong><code>CURLPROTO_*</code></strong>的位域指。如果被启用，位域值会限定libcurl在传输过程中有哪些可使用的协议。这将允许你在编译libcurl时支持众多协议，但是限制只是用它们中被允许使用的一个子集。默认libcurl将会使用全部它支持的协议。参见<strong><code>CURLOPT_REDIR_PROTOCOLS</code></strong>.
            </p>
            <p class="para">
             可用的协议选项为：<em><code class="parameter">CURLPROTO_HTTP</code></em>、<em><code class="parameter">CURLPROTO_HTTPS</code></em>、<em><code class="parameter">CURLPROTO_FTP</code></em>、<em><code class="parameter">CURLPROTO_FTPS</code></em>、<em><code class="parameter">CURLPROTO_SCP</code></em>、<em><code class="parameter">CURLPROTO_SFTP</code></em>、<em><code class="parameter">CURLPROTO_TELNET</code></em>、<em><code class="parameter">CURLPROTO_LDAP</code></em>、<em><code class="parameter">CURLPROTO_LDAPS</code></em>、<em><code class="parameter">CURLPROTO_DICT</code></em>、<em><code class="parameter">CURLPROTO_FILE</code></em>、<em><code class="parameter">CURLPROTO_TFTP</code></em>、<em><code class="parameter">CURLPROTO_ALL</code></em>
            </p>
           </td>
           <td style="vertical-align: top;">
            在cURL 7.19.4中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PROXYAUTH</code></strong></td>
           <td style="vertical-align: top;">
            HTTP代理连接的验证方式。使用在<strong><code>CURLOPT_HTTPAUTH</code></strong>中的位域标志来设置相应选项。对于代理验证只有<em><code class="parameter">CURLAUTH_BASIC</code></em>和<em><code class="parameter">CURLAUTH_NTLM</code></em>当前被支持。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.10.7中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PROXYPORT</code></strong></td>
           <td style="vertical-align: top;">
            代理服务器的端口。端口也可以在<strong><code>CURLOPT_PROXY</code></strong>中进行设置。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PROXYTYPE</code></strong></td>
           <td style="vertical-align: top;">
            不是<em><code class="parameter">CURLPROXY_HTTP</code></em> (默认值) 就是<em><code class="parameter">CURLPROXY_SOCKS5</code></em>。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.10中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_REDIR_PROTOCOLS</code></strong></td>
           <td style="vertical-align: top;">
            <strong><code>CURLPROTO_*</code></strong>中的位域值。如果被启用，位域值将会限制传输线程在<strong><code>CURLOPT_FOLLOWLOCATION</code></strong>开启时跟随某个重定向时可使用的协议。这将使你对重定向时限制传输线程使用被允许的协议子集默认libcurl将会允许除FILE和SCP之外的全部协议。这个和7.19.4预发布版本种无条件地跟随所有支持的协议有一些不同。关于协议常量，请参照<strong><code>CURLOPT_PROTOCOLS</code></strong>。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.19.4中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_RESUME_FROM</code></strong></td>
           <td style="vertical-align: top;">
            在恢复传输时传递一个字节偏移量（用来断点续传）。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSL_VERIFYHOST</code></strong></td>
           <td style="vertical-align: top;">
            1 检查服务器SSL证书中是否存在一个公用名(common name)。译者注：公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。2 检查公用名是否存在，并且是否与提供的主机名匹配。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLVERSION</code></strong></td>
           <td style="vertical-align: top;">
            使用的SSL版本(2 或 3)。默认情况下PHP会自己检测这个值，尽管有些情况下需要手动地进行设置。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_TIMECONDITION</code></strong></td>
           <td style="vertical-align: top;">
            如果在<strong><code>CURLOPT_TIMEVALUE</code></strong>指定的某个时间以后被编辑过，则使用<em><code class="parameter">CURL_TIMECOND_IFMODSINCE</code></em>返回页面，如果没有被修改过，并且<strong><code>CURLOPT_HEADER</code></strong>为true，则返回一个<em>&quot;304 Not Modified&quot;</em>的header，    <strong><code>CURLOPT_HEADER</code></strong>为false，则使用<em><code class="parameter">CURL_TIMECOND_IFUNMODSINCE</code></em>，默认值为<em><code class="parameter">CURL_TIMECOND_IFUNMODSINCE</code></em>。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_TIMEOUT</code></strong></td>
           <td style="vertical-align: top;">
            设置cURL允许执行的最长秒数。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_TIMEOUT_MS</code></strong></td>
           <td style="vertical-align: top;">
            设置cURL允许执行的最长毫秒数。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.16.2中被加入。从PHP 5.2.3起可使用。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_TIMEVALUE</code></strong></td>
           <td style="vertical-align: top;">
            设置一个<strong><code>CURLOPT_TIMECONDITION</code></strong>使用的时间戳，在默认状态下使用的是<em><code class="parameter">CURL_TIMECOND_IFMODSINCE</code></em>。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
      <p class="para">
       对于下面的这些<em><code class="parameter">option</code></em>的可选参数，<em><code class="parameter">value</code></em>应该被设置一个<span class="type"><a href="language.types.string.html" class="type string">string</a></span>类型的值：
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>选项</th>
           <th>可选<em><code class="parameter">value</code></em>值</th>
           <th>备注</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_CAINFO</code></strong></td>
           <td style="vertical-align: top;">
            一个保存着1个或多个用来让服务端验证的证书的文件名。这个参数仅仅在和<strong><code>CURLOPT_SSL_VERIFYPEER</code></strong>一起使用时才有意义。            .
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_CAPATH</code></strong></td>
           <td style="vertical-align: top;">
            一个保存着多个CA证书的目录。这个选项是和<strong><code>CURLOPT_SSL_VERIFYPEER</code></strong>一起使用的。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_COOKIE</code></strong></td>
           <td style="vertical-align: top;">
            设定HTTP请求中<em>&quot;Cookie: &quot;</em>部分的内容。多个cookie用分号分隔，分号后带一个空格(例如， &quot;<em>fruit=apple; colour=red</em>&quot;)。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_COOKIEFILE</code></strong></td>
           <td style="vertical-align: top;">
            包含cookie数据的文件名，cookie文件的格式可以是Netscape格式，或者只是纯HTTP头部信息存入文件。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_COOKIEJAR</code></strong></td>
           <td style="vertical-align: top;">
            连接结束后保存cookie信息的文件。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_CUSTOMREQUEST</code></strong></td>
           <td style="vertical-align: top;"><p class="para">
            使用一个自定义的请求信息来代替<em>&quot;GET&quot;</em>或<em>&quot;HEAD&quot;</em>作为HTTP请求。这对于执行<em>&quot;DELETE&quot;</em> 或者其他更隐蔽的HTTP请求。有效值如<em>&quot;GET&quot;</em>，<em>&quot;POST&quot;</em>，<em>&quot;CONNECT&quot;</em>等等。也就是说，不要在这里输入整个HTTP请求。例如输入<em>&quot;GET /index.html HTTP/1.0\r\n\r\n&quot;</em>是不正确的。
            <blockquote class="note"><p><strong class="note">Note</strong>: 
             <p class="para">
              在确定服务器支持这个自定义请求的方法前不要使用。
             </p>
            </p></blockquote>
            </p></td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_EGDSOCKET</code></strong></td>
           <td style="vertical-align: top;">
            类似<strong><code>CURLOPT_RANDOM_FILE</code></strong>，除了一个Entropy Gathering Daemon套接字。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_ENCODING</code></strong></td>
           <td style="vertical-align: top;">
            HTTP请求头中<em>&quot;Accept-Encoding: &quot;</em>的值。支持的编码有<em>&quot;identity&quot;</em>，<em>&quot;deflate&quot;</em>和<em>&quot;gzip&quot;</em>。如果为空字符串<em>&quot;&quot;</em>，请求头会发送所有支持的编码类型。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.10中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FTPPORT</code></strong></td>
           <td style="vertical-align: top;">
            这个值将被用来获取供FTP&quot;POST&quot;指令所需要的IP地址。&quot;POST&quot;指令告诉远程服务器连接到我们指定的IP地址。这个字符串可以是纯文本的IP地址、主机名、一个网络接口名（UNIX下）或者只是一个&#039;-&#039;来使用默认的IP地址。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_INTERFACE</code></strong></td>
           <td style="vertical-align: top;">
            网络发送接口名，可以是一个接口名、IP地址或者是一个主机名。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_KRB4LEVEL</code></strong></td>
           <td style="vertical-align: top;">
            KRB4 (Kerberos 4) 安全级别。下面的任何值都是有效的(从低到高的顺序)：<em>&quot;clear&quot;</em>、<em>&quot;safe&quot;</em>、<em>&quot;confidential&quot;</em>、<em>&quot;private&quot;.</em>。如果字符串和这些都不匹配，将使用<em>&quot;private&quot;</em>。这个选项设置为<strong><code>NULL</code></strong>时将禁用KRB4 安全认证。目前KRB4 安全认证只能用于FTP传输。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_POSTFIELDS</code></strong></td>
           <td style="vertical-align: top;">
            全部数据使用HTTP协议中的&quot;POST&quot;操作来发送。要发送文件，在文件名前面加上<em>@</em>前缀并使用完整路径。这个参数可以通过urlencoded后的字符串类似&#039;<em>para1=val1&amp;para2=val2&amp;...</em>&#039;或使用一个以字段名为键值，字段数据为值的数组。如果<em><code class="parameter">value</code></em>是一个数组，<em>Content-Type</em>头将会被设置成<em>multipart/form-data</em>。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PROXY</code></strong></td>
           <td style="vertical-align: top;">
            HTTP代理通道。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PROXYUSERPWD</code></strong></td>
           <td style="vertical-align: top;">
            一个用来连接到代理的<em>&quot;[username]:[password]&quot;</em>格式的字符串。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_RANDOM_FILE</code></strong></td>
           <td style="vertical-align: top;">
            一个被用来生成SSL随机数种子的文件名。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_RANGE</code></strong></td>
           <td style="vertical-align: top;">
            以<em>&quot;X-Y&quot;</em>的形式，其中X和Y都是可选项获取数据的范围，以字节计。HTTP传输线程也支持几个这样的重复项中间用逗号分隔如<em>&quot;X-Y,N-M&quot;</em>。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_REFERER</code></strong></td>
           <td style="vertical-align: top;">
            在HTTP请求头中<em>&quot;Referer: &quot;</em>的内容。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSL_CIPHER_LIST</code></strong></td>
           <td style="vertical-align: top;">
            一个SSL的加密算法列表。例如<em>RC4-SHA</em>和<em>TLSv1</em>都是可用的加密列表。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLCERT</code></strong></td>
           <td style="vertical-align: top;">
            一个包含PEM格式证书的文件名。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLCERTPASSWD</code></strong></td>
           <td style="vertical-align: top;">
            使用<strong><code>CURLOPT_SSLCERT</code></strong>证书需要的密码。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLCERTTYPE</code></strong></td>
           <td style="vertical-align: top;">
            证书的类型。支持的格式有<em>&quot;PEM&quot;</em> (默认值), <em>&quot;DER&quot;</em>和<em>&quot;ENG&quot;</em>。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.9.3中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLENGINE</code></strong></td>
           <td style="vertical-align: top;">
            用来在<strong><code>CURLOPT_SSLKEY</code></strong>中指定的SSL私钥的加密引擎变量。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLENGINE_DEFAULT</code></strong></td>
           <td style="vertical-align: top;">
            用来做非对称加密操作的变量。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLKEY</code></strong></td>
           <td style="vertical-align: top;">
            包含SSL私钥的文件名。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLKEYPASSWD</code></strong></td>
           <td style="vertical-align: top;"><p class="para">
            在<strong><code>CURLOPT_SSLKEY</code></strong>中指定了的SSL私钥的密码。
            <blockquote class="note"><p><strong class="note">Note</strong>: 
             <p class="para">
              由于这个选项包含了敏感的密码信息，记得保证这个PHP脚本的安全。
             </p>
            </p></blockquote>
            </p></td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_SSLKEYTYPE</code></strong></td>
           <td style="vertical-align: top;">
            <strong><code>CURLOPT_SSLKEY</code></strong>中规定的私钥的加密类型，支持的密钥类型为<em>&quot;PEM&quot;</em>(默认值)、<em>&quot;DER&quot;</em>和<em>&quot;ENG&quot;</em>。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_URL</code></strong></td>
           <td style="vertical-align: top;">
            需要获取的URL地址，也可以在<span class="function"><a href="function.curl-init.html" class="function">curl_init()</a></span>函数中设置。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_USERAGENT</code></strong></td>
           <td style="vertical-align: top;">
            在HTTP请求中包含一个<em>&quot;User-Agent: &quot;</em>头的字符串。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_USERPWD</code></strong></td>
           <td style="vertical-align: top;">
            传递一个连接中需要的用户名和密码，格式为：<em>&quot;[username]:[password]&quot;</em>。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
      <p class="para">
        对于下面的这些<em><code class="parameter">option</code></em>的可选参数，<em><code class="parameter">value</code></em>应该被设置一个数组：
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>选项</th>
           <th>可选<em><code class="parameter">value</code></em>值</th>
           <th>备注</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HTTP200ALIASES</code></strong></td>
           <td style="vertical-align: top;">
            200响应码数组，数组中的响应吗被认为是正确的响应，否则被认为是错误的。
           </td>
           <td style="vertical-align: top;">
            在cURL 7.10.3中被加入。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HTTPHEADER</code></strong></td>
           <td style="vertical-align: top;">
            一个用来设置HTTP头字段的数组。使用如下的形式的数组进行设置：
            <code class="code">
             array(&#039;Content-type: text/plain&#039;, &#039;Content-length: 100&#039;)
            </code>
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_POSTQUOTE</code></strong></td>
           <td style="vertical-align: top;">
            在FTP请求执行完成后，在服务器上执行的一组FTP命令。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_QUOTE</code></strong></td>
           <td style="vertical-align: top;">
            一组先于FTP请求的在服务器上执行的FTP命令。
           </td>
           <td style="vertical-align: top;">
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
      <p class="para">
        对于下面的这些<em><code class="parameter">option</code></em>的可选参数，<em><code class="parameter">value</code></em>应该被设置一个流资源
        （例如使用<span class="function"><a href="function.fopen.html" class="function">fopen()</a></span>）：
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>选项</th>
           <th>可选<em><code class="parameter">value</code></em>值</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_FILE</code></strong></td>
           <td style="vertical-align: top;">
            设置输出文件的位置，值是一个资源类型，默认为<em>STDOUT</em> (浏览器)。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_INFILE</code></strong></td>
           <td style="vertical-align: top;">
            在上传文件的时候需要读取的文件地址，值是一个资源类型。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_STDERR</code></strong></td>
           <td style="vertical-align: top;">
            设置一个错误输出地址，值是一个资源类型，取代默认的<em>STDERR</em>。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_WRITEHEADER</code></strong></td>
           <td style="vertical-align: top;">
            设置header部分内容的写入的文件地址，值是一个资源类型。
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
      <p class="para">
       对于下面的这些<em><code class="parameter">option</code></em>的可选参数，<em><code class="parameter">value</code></em>应该被设置为一个回调函数名：
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>选项</th>
           <th>可选<em><code class="parameter">value</code></em>值</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_HEADERFUNCTION</code></strong></td>
           <td style="vertical-align: top;">
            设置一个回调函数，这个函数有两个参数，第一个是cURL的资源句柄，第二个是输出的header数据。header数据的输出必须依赖这个函数，返回已写入的数据大小。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PASSWDFUNCTION</code></strong></td>
           <td style="vertical-align: top;">
            设置一个回调函数，有三个参数，第一个是cURL的资源句柄，第二个是一个密码提示符，第三个参数是密码长度允许的最大值。返回密码的值。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_PROGRESSFUNCTION</code></strong></td>
           <td style="vertical-align: top;">
            设置一个回调函数，有三个参数，第一个是cURL的资源句柄，第二个是一个文件描述符资源，第三个是长度。返回包含的数据。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_READFUNCTION</code></strong></td>
           <td style="vertical-align: top;">
            回调函数名。该函数应接受三个参数。第一个是 cURL resource；第二个是通过选项 
<strong><code>CURLOPT_INFILE</code></strong> 传给 cURL 的 stream resource；第三个参数是最大可以读取的数据的数量。回
调函数必须返回一个字符串，长度小于或等于请求的数据量（第三个参数）。一般从传入的 stream 
resource 读取。返回空字符串作为 <em>EOF</em>（文件结束） 信号。
           </td>
          </tr>

          <tr>
           <td style="vertical-align: top;"><strong><code>CURLOPT_WRITEFUNCTION</code></strong></td>
           <td style="vertical-align: top;">
            回调函数名。该函数应接受两个参数。第一个是 cURL resource；第二个是要写入的数据字符串。数
据必须在函数中被保存。函数必须返回准确的传入的要写入数据的字节数，否则传输会被一个错误所中
断。
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
     </dd>

    
   </dl>

  </p>
 </div>

 
 <div class="refsect1 returnvalues" id="refsect1-function.curl-setopt-returnvalues">
  <h3 class="title">返回值</h3>
  <p class="para">
   成功时返回 <strong><code>TRUE</code></strong>， 或者在失败时返回 <strong><code>FALSE</code></strong>。
  </p>
 </div>

 
 <div class="refsect1 changelog" id="refsect1-function.curl-setopt-changelog">
  <h3 class="title">更新日志</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>版本</th>
       <th>说明</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>5.2.10</td>
       <td>
        引入 <strong><code>CURLOPT_PROTOCOLS</code></strong>, and
        <strong><code>CURLOPT_REDIR_PROTOCOLS</code></strong>.
       </td>
      </tr>

      <tr>
       <td>5.1.0</td>
       <td>
        引入 <strong><code>CURLOPT_AUTOREFERER</code></strong>,
        <strong><code>CURLOPT_BINARYTRANSFER</code></strong>,
        <strong><code>CURLOPT_FTPSSLAUTH</code></strong>,
        <strong><code>CURLOPT_PROXYAUTH</code></strong>, and
        <strong><code>CURLOPT_TIMECONDITION</code></strong>.
       </td>
      </tr>

      <tr>
       <td>5.0.0</td>
       <td>
        引入 <strong><code>CURLOPT_FTP_USE_EPRT</code></strong>,
        <strong><code>CURLOPT_NOSIGNAL</code></strong>,
        <strong><code>CURLOPT_UNRESTRICTED_AUTH</code></strong>,
        <strong><code>CURLOPT_BUFFERSIZE</code></strong>,
        <strong><code>CURLOPT_HTTPAUTH</code></strong>,
        <strong><code>CURLOPT_PROXYPORT</code></strong>,
        <strong><code>CURLOPT_PROXYTYPE</code></strong>,
        <strong><code>CURLOPT_SSLCERTTYPE</code></strong>, and
        <strong><code>CURLOPT_HTTP200ALIASES</code></strong>.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

 
 <div class="refsect1 examples" id="refsect1-function.curl-setopt-examples">
  <h3 class="title">范例</h3>
  <p class="para">
   <div class="example" id="example-4135">
    <p><strong>Example #1 初始化一个新的cURL会话并获取一个网页</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//&nbsp;创建一个新cURL资源<br /></span><span style="color: #0000BB">$ch&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">curl_init</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">//&nbsp;设置URL和相应的选项<br /></span><span style="color: #0000BB">curl_setopt</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CURLOPT_URL</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"http://www.example.com/"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">curl_setopt</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CURLOPT_HEADER</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;抓取URL并把它传递给浏览器<br /></span><span style="color: #0000BB">curl_exec</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//关闭cURL资源，并且释放系统资源<br /></span><span style="color: #0000BB">curl_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-4136">
    <p><strong>Example #2 上传文件</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/*&nbsp;http://localhost/upload.php:<br />print_r($_POST);<br />print_r($_FILES);<br />*/<br /><br /></span><span style="color: #0000BB">$ch&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">curl_init</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Foo'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'file'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'@/home/user/test.png'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">curl_setopt</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CURLOPT_URL</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'http://localhost/upload.php'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">curl_setopt</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CURLOPT_POST</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">curl_setopt</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CURLOPT_POSTFIELDS</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">curl_exec</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
    </div>

    <div class="example-contents"><p>以上例程会输出：</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [name] =&gt; Foo
)
Array
(
    [file] =&gt; Array
        (
            [name] =&gt; test.png
            [type] =&gt; image/png
            [tmp_name] =&gt; /tmp/phpcpjNeQ
            [error] =&gt; 0
            [size] =&gt; 279
        )

)

</pre></div>
    </div>
   </div>
  </p>
 </div>

 
 <div class="refsect1 notes" id="refsect1-function.curl-setopt-notes">
  <h3 class="title">注释</h3>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <p class="para">
    传递一个数组到<strong><code>CURLOPT_POSTFIELDS</code></strong>，cURL会把数据编码成
    <em class="emphasis">multipart/form-data</em>，而然传递一个URL-encoded字符串时，数据会被编码成
    <em class="emphasis">application/x-www-form-urlencoded</em>。
   </p>
  </p></blockquote>
 </div>

 
 <div class="refsect1 seealso" id="refsect1-function.curl-setopt-seealso">
  <h3 class="title">参见</h3>
  <p class="para">
   <ul class="simplelist">
    <li class="member"><span class="function"><a href="function.curl-setopt-array.html" class="function" rel="rdfs-seeAlso">curl_setopt_array()</a> - 为cURL传输会话批量设置选项</span></li>
   </ul>
  </p>
 </div>

 
</div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.curl-setopt-array.html">curl_setopt_array</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.curl-share-close.html">curl_share_close</a></div>
 <div class="up"><a href="ref.curl.html">cURL 函数</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
